home *** CD-ROM | disk | FTP | other *** search
- // Chap18_2.cpp
- #include <string.h>
- #include <iostream.h>
-
- class Advisor
- {
- };
-
- class Student
- {
- public:
- Student(char *pName = "no name")
- {
- strncpy(name, pName, sizeof(name));
- average = semesterHours = 0;
- }
- void addCourse(int hours, float grade)
- {
- average = (semesterHours * average + grade);
- semesterHours += hours;
- average = average / semesterHours;
- }
- int hours( ) { return semesterHours;}
- float gpa( ) { return average;}
-
- float calcTuition()
- {
- cout << "In Student calcTuition\n";
- return 0.0F;
- }
-
- protected:
- char name[40];
- int semesterHours;
- float average;
- };
-
- class GraduateStudent : public Student
- {
- public:
- GraduateStudent(char *pName,
- Advisor &adv) : Student(pName),
- advisor(adv)
- {
- qualifierGrade = 0;
- }
-
- qualifier( ) { return qualifierGrade;};
-
- float calcTuition()
- {
- cout << "In Student calcTuition\n";
- return 0.0F;
- }
-
- protected:
- Advisor advisor;
- int qualifierGrade;
- };
-
-
- void fn(Student &x)
- {
- x.calcTuition(); //to which calcTuition() does this refer?
- }
- int main()
- {
- Student s;
- Advisor advisor;
- GraduateStudent gs("No Name", advisor);
- fn(s);
- fn(gs);
- return 0;
- }
-